home *** CD-ROM | disk | FTP | other *** search
/ Turnbull China Bikeride / Turnbull China Bikeride - Disc 2.iso / STUTTGART / SOUND / MP3CONV / !MP3Conv / h / huffman < prev    next >
Text File  |  1997-02-03  |  2KB  |  64 lines

  1. /**********************************************************************
  2.  * ISO MPEG Audio Subgroup Software Simulation Group (1996)
  3.  * ISO 13818-3 MPEG-2 Audio Decoder - Lower Sampling Frequency Extension
  4.  *
  5.  * $Id: huffman.h,v 1.1 1996/02/14 03:45:52 rowlands Exp $
  6.  *
  7.  * $Log: huffman.h,v $
  8.  * Revision 1.1  1996/02/14 03:45:52  rowlands
  9.  * Initial revision
  10.  *
  11.  * Received from FhG
  12.  **********************************************************************/
  13. /**********************************************************************
  14.  *   date   programmers                comment                        *
  15.  *  27.2.92 F.O.Witte (ITT Intermetall)                      *
  16.  *  8/24/93 M. Iwadare          Changed for 1 pass decoding.          *
  17.  *  7/14/94 J. Koller        useless 'typedef' before huffcodetab  *
  18.  *                removed                      *
  19.  *********************************************************************/    
  20.  
  21. #define HUFFBITS unsigned long int
  22. #define HTN    34
  23. #define MXOFF    250
  24.  
  25. struct huffcodetab {
  26.   char tablename[3];    /*string, containing table_description    */
  27.   unsigned int xlen;     /*max. x-index+                      */ 
  28.   unsigned int ylen;    /*max. y-index+                */
  29.   unsigned int linbits; /*number of linbits            */
  30.   unsigned int linmax;    /*max number to be stored in linbits    */
  31.   int ref;        /*a positive value indicates a reference*/
  32.   HUFFBITS *table;    /*pointer to array[xlen][ylen]        */
  33.   unsigned char *hlen;    /*pointer to array[xlen][ylen]        */
  34.   unsigned char(*val)[2];/*decoder tree                */ 
  35.   unsigned int treelen;    /*length of decoder tree        */
  36. };
  37.  
  38. extern struct huffcodetab ht[HTN];/* global memory block        */
  39.                 /* array of all huffcodtable headers    */
  40.                 /* 0..31 Huffman code table 0..31    */
  41.                 /* 32,33 count1-tables            */
  42. #ifdef PROTO_ARGS
  43.  
  44. extern int read_huffcodetab(FILE *); 
  45.  
  46. #ifndef BUILTIN_TABLES
  47. extern int read_decoder_table(FILE *);
  48. #endif
  49.  
  50. extern void huffman_coder(unsigned int, unsigned int,
  51.               struct huffcodetab *, Bit_stream_struc *);
  52.               
  53. extern int huffman_decoder(struct huffcodetab *,
  54.                /* unsigned */ int *, /* unsigned */ int*, int*, int*);
  55.  
  56. #else
  57.  
  58. extern int read_huffcodetab(); 
  59. extern int read_decoder_table(); 
  60. extern void huffman_coder();
  61. extern int huffman_decoder();
  62.  
  63. #endif
  64.